ফাইল আপলোড করার পদ্ধতি

Web Development - এএসপি ডট (ASP.Net) - ফাইল আপলোড এবং ডাউনলোড |

ASP.Net এ ফাইল আপলোড করা একটি সাধারণ কার্যকলাপ, যা ব্যবহারকারীকে সার্ভারে ফাইল পাঠানোর অনুমতি দেয়। ASP.Net Core এবং ASP.Net MVC উভয় ক্ষেত্রেই ফাইল আপলোডের জন্য আলাদা আলাদা পদ্ধতি রয়েছে। এখানে আমরা ASP.Net MVC এবং ASP.Net Core উভয়ের জন্য ফাইল আপলোডের প্রক্রিয়া ব্যাখ্যা করব।


ASP.Net Core: ফাইল আপলোড করার পদ্ধতি

ASP.Net Core অ্যাপে ফাইল আপলোড করার জন্য IFormFile ইন্টারফেস ব্যবহার করা হয়। এটি একটি ইনপুট ফাইল দ্বারা আপলোড হওয়া ফাইলের মেটাডাটা এবং কন্টেন্ট ধারণ করে। ASP.Net Core এ ফাইল আপলোড করার জন্য কিছু নির্দিষ্ট ধাপ অনুসরণ করতে হবে।

১. HTML ফর্ম তৈরি করা

ফাইল আপলোডের জন্য একটি ফর্ম তৈরি করতে হবে যেখানে ফাইল ইনপুট ফিল্ড থাকবে। এখানে enctype="multipart/form-data" অ্যাট্রিবিউট অবশ্যই নির্দিষ্ট করতে হবে, কারণ এটি ফাইল ডেটা পাঠাতে সাহায্য করে।

<form method="post" enctype="multipart/form-data">
    <div>
        <label for="file">Upload File:</label>
        <input type="file" name="file" id="file" />
    </div>
    <button type="submit">Upload</button>
</form>

২. Controller এ ফাইল আপলোডের লজিক

এখন কন্ট্রোলারে ফাইলটি গ্রহণ করার জন্য IFormFile ব্যবহার করতে হবে। ফাইলটি গ্রহণ করার পর, আপনি এটি সার্ভারে স্টোর করতে পারেন বা অন্য কোন কাজ করতে পারেন।

[HttpPost]
public async Task<IActionResult> UploadFile(IFormFile file)
{
    if (file != null && file.Length > 0)
    {
        var filePath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "uploads", file.FileName);

        // ফাইল সংরক্ষণ
        using (var stream = new FileStream(filePath, FileMode.Create))
        {
            await file.CopyToAsync(stream);
        }

        return Content("File uploaded successfully!");
    }
    return Content("No file selected.");
}

এখানে:

  • IFormFile file ইনপুট ফাইলটিকে অ্যাক্সেস করতে ব্যবহৃত হয়েছে।
  • file.CopyToAsync(stream) দিয়ে ফাইলটি সার্ভারে সেভ করা হচ্ছে।
  • ফাইলটি wwwroot/uploads/ ডিরেক্টরিতে সেভ করা হয়েছে।

ASP.Net MVC: ফাইল আপলোড করার পদ্ধতি

ASP.Net MVC তে ফাইল আপলোড করার প্রক্রিয়া খুবই সাদামাটা, তবে এখানে কিছু অতিরিক্ত কনফিগারেশন থাকতে পারে।

১. HTML ফর্ম তৈরি করা

ASP.Net MVC তেও HTML ফর্মের মধ্যে enctype="multipart/form-data" সেট করা প্রয়োজন।

@using (Html.BeginForm("Upload", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
    <div>
        <label for="file">Upload File:</label>
        <input type="file" name="file" id="file" />
    </div>
    <button type="submit">Upload</button>
}

২. Controller এ ফাইল আপলোডের লজিক

এখন কন্ট্রোলারে HttpPostedFileBase ব্যবহার করে ফাইলটি গ্রহণ করতে হবে।

[HttpPost]
public ActionResult Upload(HttpPostedFileBase file)
{
    if (file != null && file.ContentLength > 0)
    {
        var filePath = Path.Combine(Server.MapPath("~/Uploads"), file.FileName);

        // ফাইল সংরক্ষণ
        file.SaveAs(filePath);

        return Content("File uploaded successfully!");
    }
    return Content("No file selected.");
}

এখানে:

  • HttpPostedFileBase file ফাইল ইনপুট ফিল্ড থেকে ফাইল গ্রহণ করতে ব্যবহৃত হয়েছে।
  • file.SaveAs(filePath) দিয়ে ফাইলটি নির্দিষ্ট পাথে সংরক্ষণ করা হয়েছে।
  • Server.MapPath("~/Uploads") ব্যবহার করে আপলোড পাথ তৈরি করা হয়েছে।

ফাইলের আকার সীমাবদ্ধতা এবং অন্যান্য কনফিগারেশন

ফাইল আপলোডের সময় কিছু সীমাবদ্ধতা থাকতে পারে যেমন, ফাইলের আকার বা ফাইলের ধরন ইত্যাদি। এসব কনফিগারেশন web.config (ASP.Net MVC) বা Startup.cs (ASP.Net Core) ফাইলে নির্ধারণ করা যায়।

১. ASP.Net Core: ফাইল সাইজ সীমাবদ্ধতা

ASP.Net Core এ ফাইল আপলোডের জন্য Startup.cs ফাইলে সাইজ সীমাবদ্ধতা নির্ধারণ করা যায়।

public void ConfigureServices(IServiceCollection services)
{
    services.AddControllersWithViews();

    // ফাইল সাইজ সীমাবদ্ধতা সেট করা
    services.Configure<FormOptions>(options =>
    {
        options.MultipartBodyLengthLimit = 104857600; // 100MB
    });
}

২. ASP.Net MVC: ফাইল সাইজ সীমাবদ্ধতা

ASP.Net MVC তে, web.config ফাইলে ফাইল সাইজ সীমাবদ্ধতা নির্ধারণ করা যায়।

<configuration>
  <system.web>
    <httpRuntime maxRequestLength="1048576" />
  </system.web>
</configuration>

এখানে, maxRequestLength="1048576" মানে 1GB এর কাছাকাছি ফাইল সাইজ।


ফাইল টাইপ চেক করা

ফাইল টাইপ (যেমন, ছবি, পিডিএফ ইত্যাদি) চেক করা একটি ভাল প্র্যাকটিস, যা নিরাপত্তার জন্য প্রয়োজনীয়। আপনি ফাইলের এক্সটেনশন বা MIME টাইপ চেক করতে পারেন।

উদাহরণ: ফাইল টাইপ যাচাই করা

public bool IsValidFileType(string fileName)
{
    var allowedExtensions = new[] { ".jpg", ".jpeg", ".png", ".pdf" };
    var fileExtension = Path.GetExtension(fileName).ToLower();
    return allowedExtensions.Contains(fileExtension);
}

এখানে, .jpg, .jpeg, .png, এবং .pdf ফাইল টাইপসমূহ অনুমোদিত।


সারাংশ

ASP.Net এ ফাইল আপলোড একটি সাধারণ এবং কার্যকরী প্রক্রিয়া, যা ব্যবহারকারীকে সহজেই ফাইল আপলোড করতে সাহায্য করে। ASP.Net Core এবং ASP.Net MVC উভয় ক্ষেত্রে ফাইল আপলোডের প্রক্রিয়া আলাদা হলেও, মূল ধারণা এবং কোড স্ট্রাকচার একই রকম। সার্ভারে ফাইল সেভ করার আগে সেগুলোর সাইজ এবং টাইপ যাচাই করা খুবই গুরুত্বপূর্ণ, যাতে সিস্টেমে নিরাপত্তা বিঘ্নিত না হয়।

Content added By
Promotion